/* //device/samples/SampleCode/src/com/android/samples/app/RemoteServiceInterface.java
**
** Copyright 2007, The Android Open Source Project
**
** Licensed under the Apache License, Version 2.0 (the "License"); 
** you may not use this file except in compliance with the License. 
** You may obtain a copy of the License at 
**
**     http://www.apache.org/licenses/LICENSE-2.0 
**
** Unless required by applicable law or agreed to in writing, software 
** distributed under the License is distributed on an "AS IS" BASIS, 
** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 
** See the License for the specific language governing permissions and 
** limitations under the License.
*/

package com.android.music.player.service;

import android.net.Uri;
//import com.android.music.common.data.MpListFilter;
//import com.android.music.player.data.MusicAlbumInfo;

interface ICorePlayerService
{
    void openFile(String path);
    void open(in long [] list, int position);
    int getQueuePosition();
    boolean isPlaying();
    void stop();
    void pause();
    void play();
    void prev();
    void next();
    long duration();
    long position();
    long seek(long pos);
    String getTrackName();
    String getAlbumName();
    //long getAlbumId();
    String getArtistName();
    //long getArtistId();
    void enqueue(in long [] list, int action);
    long [] getQueue();
    void moveQueueItem(int from, int to);
    void setQueuePosition(int index);
    String getPath();
    int getAudioId(); // long->int
    void setShuffleMode(int shufflemode);
    int getShuffleMode();
    int removeTracks(int first, int last);
    int removeTrack(long id);
    void setRepeatMode(int repeatmode);
    int getRepeatMode();
    int getMediaMountedCount();
    int getAudioSessionId();
    //@ jihwon
    void playSeek(long seekTime);
    void openCurrent(boolean bPlay);
    int getCurrent_ID();
    String getCurrentMedia();
    String getCurrentFilePath();
    int getIndexOfPlayList();
    int getCurrentMediaListType();
    //MpListFilter getMpListFilter();
    void setR2VSMode();
    void setR2VSUserEQ(int mode, in int[] eq);
    int getTotalMediaCount();
    int getItemCountFromDB();
    void setPlayIterator(int _id, int listType, int filterId,
				String strFilter, int filterId2, String strFilter2);
	//void setPlayIteratorWithFilter(int _id, in MpListFilter filter);
	void setPlayIteratorWithUri(String uri);
	void prepareWithLastPlayedFile(boolean bPlay);
	void getRealEQdata(in int[] value);
	void offRealEQdata();
	int getPlayListType();
	boolean isStop();	
	boolean isInitialized();
	void showNotificationInfo();		
    void hideNotificationInfo();
    void initIndex();
    Uri getPrev();
    Uri getNext(boolean ignoreRepeatOne);
    void playIt(in Uri media, boolean toNext);
    void setUlpBypass(boolean bUlpByPass);
    // #Repeat
    int getABRepeatStatus();
    int setABRepeat(long position, boolean setClear);
    void processABRepeat();
}